// export pak , sol1 , sol2 , jankes , engar , engam , arsol , arabb , atakON , czas1 , czas2 , czas3 ; var i , bun , arbun ; starting begin disable ( 02 ) ;
   0: LD_INT 2
   2: DISABLE_MARKED
// atakON = false ;
   3: LD_ADDR_EXP 9
   7: PUSH
   8: LD_INT 0
  10: ST_TO_ADDR
// disable ( 03 ) ;
  11: LD_INT 3
  13: DISABLE_MARKED
// ResetFog ;
  14: CALL_OW 335
// RandomizeAll ;
  18: CALL_OW 11
// uc_side = 3 ;
  22: LD_ADDR_OWVAR 20
  26: PUSH
  27: LD_INT 3
  29: ST_TO_ADDR
// Pak = NewCharacter ( Pak ) ;
  30: LD_ADDR_EXP 1
  34: PUSH
  35: LD_STRING Pak
  37: PPUSH
  38: CALL_OW 25
  42: ST_TO_ADDR
// PlaceUnitArea ( Pak , rus , false ) ;
  43: LD_EXP 1
  47: PPUSH
  48: LD_INT 1
  50: PPUSH
  51: LD_INT 0
  53: PPUSH
  54: CALL_OW 49
// CenterOnXY ( 40 , 75 ) ;
  58: LD_INT 40
  60: PPUSH
  61: LD_INT 75
  63: PPUSH
  64: CALL_OW 84
// wait ( 0 0$0.5 ) ;
  68: LD_INT 18
  70: PPUSH
  71: CALL_OW 67
// DialogueOn ;
  75: CALL_OW 6
// Say ( pak , p01 ) ;
  79: LD_EXP 1
  83: PPUSH
  84: LD_STRING p01
  86: PPUSH
  87: CALL_OW 88
// DialogueOff ;
  91: CALL_OW 7
// ChangeMissionObjectives ( CelM1 ) ;
  95: LD_STRING CelM1
  97: PPUSH
  98: CALL_OW 337
// SetAreaMapShow ( sos , 1 ) ;
 102: LD_INT 4
 104: PPUSH
 105: LD_INT 1
 107: PPUSH
 108: CALL_OW 424
// atakujacy = 10 ;
 112: LD_ADDR_EXP 17
 116: PUSH
 117: LD_INT 10
 119: ST_TO_ADDR
// sila = 10 ;
 120: LD_ADDR_EXP 18
 124: PUSH
 125: LD_INT 10
 127: ST_TO_ADDR
// czas1 = false ;
 128: LD_ADDR_EXP 10
 132: PUSH
 133: LD_INT 0
 135: ST_TO_ADDR
// czas2 = false ;
 136: LD_ADDR_EXP 11
 140: PUSH
 141: LD_INT 0
 143: ST_TO_ADDR
// czas3 = false ;
 144: LD_ADDR_EXP 12
 148: PUSH
 149: LD_INT 0
 151: ST_TO_ADDR
// end ;
 152: END
// every 0 0$01 do
 153: GO 155
 155: DISABLE
// begin bun := FilterAllUnits ( [ [ [ f_side , 1 ] , [ f_btype , b_breastwork ] , [ f_empty ] ] ] ) ;
 156: LD_ADDR_LOC 2
 160: PUSH
 161: LD_INT 22
 163: PUSH
 164: LD_INT 1
 166: PUSH
 167: EMPTY
 168: LIST
 169: LIST
 170: PUSH
 171: LD_INT 30
 173: PUSH
 174: LD_INT 31
 176: PUSH
 177: EMPTY
 178: LIST
 179: LIST
 180: PUSH
 181: LD_INT 58
 183: PUSH
 184: EMPTY
 185: LIST
 186: PUSH
 187: EMPTY
 188: LIST
 189: LIST
 190: LIST
 191: PUSH
 192: EMPTY
 193: LIST
 194: PPUSH
 195: CALL_OW 69
 199: ST_TO_ADDR
// for i = 1 to bun do
 200: LD_ADDR_LOC 1
 204: PUSH
 205: DOUBLE
 206: LD_INT 1
 208: DEC
 209: ST_TO_ADDR
 210: LD_LOC 2
 214: PUSH
 215: FOR_TO
 216: IFFALSE 328
// begin uc_side = 1 ;
 218: LD_ADDR_OWVAR 20
 222: PUSH
 223: LD_INT 1
 225: ST_TO_ADDR
// uc_nation = 1 ;
 226: LD_ADDR_OWVAR 21
 230: PUSH
 231: LD_INT 1
 233: ST_TO_ADDR
// hc_class = 1 ;
 234: LD_ADDR_OWVAR 28
 238: PUSH
 239: LD_INT 1
 241: ST_TO_ADDR
// hc_skills = [ 4 , 2 , 2 , 1 ] ;
 242: LD_ADDR_OWVAR 31
 246: PUSH
 247: LD_INT 4
 249: PUSH
 250: LD_INT 2
 252: PUSH
 253: LD_INT 2
 255: PUSH
 256: LD_INT 1
 258: PUSH
 259: EMPTY
 260: LIST
 261: LIST
 262: LIST
 263: LIST
 264: ST_TO_ADDR
// hc_sex = Rand ( 1 , 2 ) ;
 265: LD_ADDR_OWVAR 27
 269: PUSH
 270: LD_INT 1
 272: PPUSH
 273: LD_INT 2
 275: PPUSH
 276: CALL_OW 12
 280: ST_TO_ADDR
// jankes = CreateHuman ;
 281: LD_ADDR_EXP 4
 285: PUSH
 286: CALL_OW 44
 290: ST_TO_ADDR
// PlaceUnitArea ( jankes , am , false ) ;
 291: LD_EXP 4
 295: PPUSH
 296: LD_INT 2
 298: PPUSH
 299: LD_INT 0
 301: PPUSH
 302: CALL_OW 49
// ComEnterUnit ( jankes , bun [ i ] ) ;
 306: LD_EXP 4
 310: PPUSH
 311: LD_LOC 2
 315: PUSH
 316: LD_LOC 1
 320: ARRAY
 321: PPUSH
 322: CALL_OW 120
// end ;
 326: GO 215
 328: POP
 329: POP
// end ;
 330: END
// every 0 0$01 do
 331: GO 333
 333: DISABLE
// begin arbun := FilterAllUnits ( [ [ [ f_side , 2 ] , [ f_btype , b_breastwork ] , [ f_empty ] ] ] ) ;
 334: LD_ADDR_LOC 3
 338: PUSH
 339: LD_INT 22
 341: PUSH
 342: LD_INT 2
 344: PUSH
 345: EMPTY
 346: LIST
 347: LIST
 348: PUSH
 349: LD_INT 30
 351: PUSH
 352: LD_INT 31
 354: PUSH
 355: EMPTY
 356: LIST
 357: LIST
 358: PUSH
 359: LD_INT 58
 361: PUSH
 362: EMPTY
 363: LIST
 364: PUSH
 365: EMPTY
 366: LIST
 367: LIST
 368: LIST
 369: PUSH
 370: EMPTY
 371: LIST
 372: PPUSH
 373: CALL_OW 69
 377: ST_TO_ADDR
// for i = 1 to 1 do
 378: LD_ADDR_LOC 1
 382: PUSH
 383: DOUBLE
 384: LD_INT 1
 386: DEC
 387: ST_TO_ADDR
 388: LD_INT 1
 390: PUSH
 391: FOR_TO
 392: IFFALSE 543
// begin uc_side = 2 ;
 394: LD_ADDR_OWVAR 20
 398: PUSH
 399: LD_INT 2
 401: ST_TO_ADDR
// uc_nation = 2 ;
 402: LD_ADDR_OWVAR 21
 406: PUSH
 407: LD_INT 2
 409: ST_TO_ADDR
// hc_class = 1 ;
 410: LD_ADDR_OWVAR 28
 414: PUSH
 415: LD_INT 1
 417: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
 418: LD_ADDR_OWVAR 29
 422: PUSH
 423: LD_INT 10
 425: PUSH
 426: LD_INT 10
 428: PUSH
 429: EMPTY
 430: LIST
 431: LIST
 432: ST_TO_ADDR
// hc_skills = [ Rand ( 3 , 5 ) , Rand ( 1 , 3 ) , Rand ( 1 , 3 ) , 0 ] ;
 433: LD_ADDR_OWVAR 31
 437: PUSH
 438: LD_INT 3
 440: PPUSH
 441: LD_INT 5
 443: PPUSH
 444: CALL_OW 12
 448: PUSH
 449: LD_INT 1
 451: PPUSH
 452: LD_INT 3
 454: PPUSH
 455: CALL_OW 12
 459: PUSH
 460: LD_INT 1
 462: PPUSH
 463: LD_INT 3
 465: PPUSH
 466: CALL_OW 12
 470: PUSH
 471: LD_INT 0
 473: PUSH
 474: EMPTY
 475: LIST
 476: LIST
 477: LIST
 478: LIST
 479: ST_TO_ADDR
// hc_sex = Rand ( 1 , 2 ) ;
 480: LD_ADDR_OWVAR 27
 484: PUSH
 485: LD_INT 1
 487: PPUSH
 488: LD_INT 2
 490: PPUSH
 491: CALL_OW 12
 495: ST_TO_ADDR
// arsol = CreateHuman ;
 496: LD_ADDR_EXP 7
 500: PUSH
 501: CALL_OW 44
 505: ST_TO_ADDR
// PlaceUnitArea ( arsol , ar , false ) ;
 506: LD_EXP 7
 510: PPUSH
 511: LD_INT 3
 513: PPUSH
 514: LD_INT 0
 516: PPUSH
 517: CALL_OW 49
// ComEnterUnit ( arsol , arbun [ i ] ) ;
 521: LD_EXP 7
 525: PPUSH
 526: LD_LOC 3
 530: PUSH
 531: LD_LOC 1
 535: ARRAY
 536: PPUSH
 537: CALL_OW 120
// end ;
 541: GO 391
 543: POP
 544: POP
// end ;
 545: END
// every 0 0$01 do
 546: GO 548
 548: DISABLE
// begin uc_side = 2 ;
 549: LD_ADDR_OWVAR 20
 553: PUSH
 554: LD_INT 2
 556: ST_TO_ADDR
// uc_nation = 2 ;
 557: LD_ADDR_OWVAR 21
 561: PUSH
 562: LD_INT 2
 564: ST_TO_ADDR
// hc_class = 2 ;
 565: LD_ADDR_OWVAR 28
 569: PUSH
 570: LD_INT 2
 572: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
 573: LD_ADDR_OWVAR 29
 577: PUSH
 578: LD_INT 10
 580: PUSH
 581: LD_INT 10
 583: PUSH
 584: EMPTY
 585: LIST
 586: LIST
 587: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 3 , 5 ) , Rand ( 1 , 3 ) , Rand ( 1 , 4 ) ] ;
 588: LD_ADDR_OWVAR 31
 592: PUSH
 593: LD_INT 1
 595: PPUSH
 596: LD_INT 3
 598: PPUSH
 599: CALL_OW 12
 603: PUSH
 604: LD_INT 3
 606: PPUSH
 607: LD_INT 5
 609: PPUSH
 610: CALL_OW 12
 614: PUSH
 615: LD_INT 1
 617: PPUSH
 618: LD_INT 3
 620: PPUSH
 621: CALL_OW 12
 625: PUSH
 626: LD_INT 1
 628: PPUSH
 629: LD_INT 4
 631: PPUSH
 632: CALL_OW 12
 636: PUSH
 637: EMPTY
 638: LIST
 639: LIST
 640: LIST
 641: LIST
 642: ST_TO_ADDR
// hc_sex = 1 ;
 643: LD_ADDR_OWVAR 27
 647: PUSH
 648: LD_INT 1
 650: ST_TO_ADDR
// engar = CreateHuman ;
 651: LD_ADDR_EXP 5
 655: PUSH
 656: CALL_OW 44
 660: ST_TO_ADDR
// PlaceUnitArea ( engar , ar , false ) ;
 661: LD_EXP 5
 665: PPUSH
 666: LD_INT 3
 668: PPUSH
 669: LD_INT 0
 671: PPUSH
 672: CALL_OW 49
// ComEnterUnit ( engar , depo ) ;
 676: LD_EXP 5
 680: PPUSH
 681: LD_INT 6
 683: PPUSH
 684: CALL_OW 120
// end ;
 688: END
// every 0 0$01 trigger See ( 3 , depo ) do
 689: LD_INT 3
 691: PPUSH
 692: LD_INT 6
 694: PPUSH
 695: CALL_OW 292
 699: IFFALSE 860
 701: GO 703
 703: DISABLE
// begin arabb := FilterAllUnits ( [ f_side , 2 ] ) ;
 704: LD_ADDR_EXP 8
 708: PUSH
 709: LD_INT 22
 711: PUSH
 712: LD_INT 2
 714: PUSH
 715: EMPTY
 716: LIST
 717: LIST
 718: PPUSH
 719: CALL_OW 69
 723: ST_TO_ADDR
// SetAreaMapShow ( sos , 0 ) ;
 724: LD_INT 4
 726: PPUSH
 727: LD_INT 0
 729: PPUSH
 730: CALL_OW 424
// ChangeMissionObjectives ( CelM1chg ) ;
 734: LD_STRING CelM1chg
 736: PPUSH
 737: CALL_OW 337
// DialogueOn ;
 741: CALL_OW 6
// Say ( arsol , a1 ) ;
 745: LD_EXP 7
 749: PPUSH
 750: LD_STRING a1
 752: PPUSH
 753: CALL_OW 88
// Say ( pak , p1 ) ;
 757: LD_EXP 1
 761: PPUSH
 762: LD_STRING p1
 764: PPUSH
 765: CALL_OW 88
// Say ( arsol , a2 ) ;
 769: LD_EXP 7
 773: PPUSH
 774: LD_STRING a2
 776: PPUSH
 777: CALL_OW 88
// Say ( pak , p2 ) ;
 781: LD_EXP 1
 785: PPUSH
 786: LD_STRING p2
 788: PPUSH
 789: CALL_OW 88
// Say ( arsol , a3 ) ;
 793: LD_EXP 7
 797: PPUSH
 798: LD_STRING a3
 800: PPUSH
 801: CALL_OW 88
// Say ( pak , p3 ) ;
 805: LD_EXP 1
 809: PPUSH
 810: LD_STRING p3
 812: PPUSH
 813: CALL_OW 88
// Say ( arsol , a4 ) ;
 817: LD_EXP 7
 821: PPUSH
 822: LD_STRING a4
 824: PPUSH
 825: CALL_OW 88
// Say ( pak , p4 ) ;
 829: LD_EXP 1
 833: PPUSH
 834: LD_STRING p4
 836: PPUSH
 837: CALL_OW 88
// DialogueOff ;
 841: CALL_OW 7
// SetSide ( arabb , 3 ) ;
 845: LD_EXP 8
 849: PPUSH
 850: LD_INT 3
 852: PPUSH
 853: CALL_OW 235
// enable ( 03 ) ;
 857: LD_INT 3
 859: ENABLE_MARKED
// end ;
 860: END
// every 0 0$01 marked 03 do
 861: GO 863
 863: DISABLE
// begin wait ( 20 20$0 ) ;
 864: LD_INT 42000
 866: PPUSH
 867: CALL_OW 67
// czas1 = true ;
 871: LD_ADDR_EXP 10
 875: PUSH
 876: LD_INT 1
 878: ST_TO_ADDR
// end ;
 879: END
// every 0 0$01 marked 03 do
 880: GO 882
 882: DISABLE
// begin wait ( 40 40$0 ) ;
 883: LD_INT 84000
 885: PPUSH
 886: CALL_OW 67
// czas2 = true ;
 890: LD_ADDR_EXP 11
 894: PUSH
 895: LD_INT 1
 897: ST_TO_ADDR
// end ;
 898: END
// every 0 0$01 marked 03 do
 899: GO 901
 901: DISABLE
// begin wait ( 60 60$0 ) ;
 902: LD_INT 126000
 904: PPUSH
 905: CALL_OW 67
// czas3 = true ;
 909: LD_ADDR_EXP 12
 913: PUSH
 914: LD_INT 1
 916: ST_TO_ADDR
// end ;
 917: END
// every 3 3$0 marked 03 do
 918: GO 920
 920: DISABLE
// begin enable ;
 921: ENABLE
// CreateCratesArea ( Rand ( 1 , 3 ) , am , true ) ;
 922: LD_INT 1
 924: PPUSH
 925: LD_INT 3
 927: PPUSH
 928: CALL_OW 12
 932: PPUSH
 933: LD_INT 2
 935: PPUSH
 936: LD_INT 1
 938: PPUSH
 939: CALL_OW 55
// end ; end_of_file
 943: END
// export ape0 , ape8 , tab , grupa , atakujacy , sila , filter , nasi , bunkry , koksy ; var i ; export function atak ; begin
 944: LD_INT 0
 946: PPUSH
// uc_side = 8 ;
 947: LD_ADDR_OWVAR 20
 951: PUSH
 952: LD_INT 8
 954: ST_TO_ADDR
// hc_class = class_apeman ;
 955: LD_ADDR_OWVAR 28
 959: PUSH
 960: LD_INT 12
 962: ST_TO_ADDR
// hc_attr = [ 13 , 13 ] ;
 963: LD_ADDR_OWVAR 29
 967: PUSH
 968: LD_INT 13
 970: PUSH
 971: LD_INT 13
 973: PUSH
 974: EMPTY
 975: LIST
 976: LIST
 977: ST_TO_ADDR
// uc_nation = 0 ;
 978: LD_ADDR_OWVAR 21
 982: PUSH
 983: LD_INT 0
 985: ST_TO_ADDR
// hc_agressivity = 100 ;
 986: LD_ADDR_OWVAR 35
 990: PUSH
 991: LD_INT 100
 993: ST_TO_ADDR
// ape8 = CreateHuman ;
 994: LD_ADDR_EXP 14
 998: PUSH
 999: CALL_OW 44
1003: ST_TO_ADDR
// PlaceUnitArea ( ape8 , apes , false ) ;
1004: LD_EXP 14
1008: PPUSH
1009: LD_INT 5
1011: PPUSH
1012: LD_INT 0
1014: PPUSH
1015: CALL_OW 49
// ComAgressiveMove ( ape8 , 50 , 44 ) ;
1019: LD_EXP 14
1023: PPUSH
1024: LD_INT 50
1026: PPUSH
1027: LD_INT 44
1029: PPUSH
1030: CALL_OW 114
// end ;
1034: LD_VAR 0 1
1038: RET
// every 0 0$0.1 do var i ;
1039: GO 1041
1041: DISABLE
1042: LD_INT 0
1044: PPUSH
// for i = 1 to 20 do
1045: LD_ADDR_VAR 0 1
1049: PUSH
1050: DOUBLE
1051: LD_INT 1
1053: DEC
1054: ST_TO_ADDR
1055: LD_INT 20
1057: PUSH
1058: FOR_TO
1059: IFFALSE 1133
// begin disable ;
1061: DISABLE
// uc_side = 0 ;
1062: LD_ADDR_OWVAR 20
1066: PUSH
1067: LD_INT 0
1069: ST_TO_ADDR
// hc_class = class_apeman ;
1070: LD_ADDR_OWVAR 28
1074: PUSH
1075: LD_INT 12
1077: ST_TO_ADDR
// hc_attr = [ 13 , 13 ] ;
1078: LD_ADDR_OWVAR 29
1082: PUSH
1083: LD_INT 13
1085: PUSH
1086: LD_INT 13
1088: PUSH
1089: EMPTY
1090: LIST
1091: LIST
1092: ST_TO_ADDR
// uc_nation = 0 ;
1093: LD_ADDR_OWVAR 21
1097: PUSH
1098: LD_INT 0
1100: ST_TO_ADDR
// hc_agressivity = 100 ;
1101: LD_ADDR_OWVAR 35
1105: PUSH
1106: LD_INT 100
1108: ST_TO_ADDR
// ape0 = CreateHuman ;
1109: LD_ADDR_EXP 13
1113: PUSH
1114: CALL_OW 44
1118: ST_TO_ADDR
// PlaceUnitAnywhere ( ape0 , false ) ;
1119: LD_EXP 13
1123: PPUSH
1124: LD_INT 0
1126: PPUSH
1127: CALL_OW 51
// end ;
1131: GO 1058
1133: POP
1134: POP
1135: PPOPN 1
1137: END
// every 0 0$0.1 do
1138: GO 1140
1140: DISABLE
// begin disable ;
1141: DISABLE
// uc_side = 3 ;
1142: LD_ADDR_OWVAR 20
1146: PUSH
1147: LD_INT 3
1149: ST_TO_ADDR
// hc_class = 1 ;
1150: LD_ADDR_OWVAR 28
1154: PUSH
1155: LD_INT 1
1157: ST_TO_ADDR
// uc_nation = 3 ;
1158: LD_ADDR_OWVAR 21
1162: PUSH
1163: LD_INT 3
1165: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
1166: LD_ADDR_OWVAR 29
1170: PUSH
1171: LD_INT 10
1173: PUSH
1174: LD_INT 10
1176: PUSH
1177: EMPTY
1178: LIST
1179: LIST
1180: ST_TO_ADDR
// hc_skills = [ Rand ( 3 , 5 ) , Rand ( 1 , 3 ) , Rand ( 1 , 3 ) , 0 ] ;
1181: LD_ADDR_OWVAR 31
1185: PUSH
1186: LD_INT 3
1188: PPUSH
1189: LD_INT 5
1191: PPUSH
1192: CALL_OW 12
1196: PUSH
1197: LD_INT 1
1199: PPUSH
1200: LD_INT 3
1202: PPUSH
1203: CALL_OW 12
1207: PUSH
1208: LD_INT 1
1210: PPUSH
1211: LD_INT 3
1213: PPUSH
1214: CALL_OW 12
1218: PUSH
1219: LD_INT 0
1221: PUSH
1222: EMPTY
1223: LIST
1224: LIST
1225: LIST
1226: LIST
1227: ST_TO_ADDR
// sol2 = CreateHuman ;
1228: LD_ADDR_EXP 3
1232: PUSH
1233: CALL_OW 44
1237: ST_TO_ADDR
// PlaceUnitArea ( sol2 , rus1 , false ) ;
1238: LD_EXP 3
1242: PPUSH
1243: LD_INT 6
1245: PPUSH
1246: LD_INT 0
1248: PPUSH
1249: CALL_OW 49
// end ;
1253: END
// every 0 0$0.1 do
1254: GO 1256
1256: DISABLE
// begin disable ;
1257: DISABLE
// uc_side = 3 ;
1258: LD_ADDR_OWVAR 20
1262: PUSH
1263: LD_INT 3
1265: ST_TO_ADDR
// hc_class = 1 ;
1266: LD_ADDR_OWVAR 28
1270: PUSH
1271: LD_INT 1
1273: ST_TO_ADDR
// uc_nation = 3 ;
1274: LD_ADDR_OWVAR 21
1278: PUSH
1279: LD_INT 3
1281: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
1282: LD_ADDR_OWVAR 29
1286: PUSH
1287: LD_INT 10
1289: PUSH
1290: LD_INT 10
1292: PUSH
1293: EMPTY
1294: LIST
1295: LIST
1296: ST_TO_ADDR
// hc_skills = [ Rand ( 3 , 5 ) , Rand ( 1 , 3 ) , Rand ( 1 , 3 ) , 0 ] ;
1297: LD_ADDR_OWVAR 31
1301: PUSH
1302: LD_INT 3
1304: PPUSH
1305: LD_INT 5
1307: PPUSH
1308: CALL_OW 12
1312: PUSH
1313: LD_INT 1
1315: PPUSH
1316: LD_INT 3
1318: PPUSH
1319: CALL_OW 12
1323: PUSH
1324: LD_INT 1
1326: PPUSH
1327: LD_INT 3
1329: PPUSH
1330: CALL_OW 12
1334: PUSH
1335: LD_INT 0
1337: PUSH
1338: EMPTY
1339: LIST
1340: LIST
1341: LIST
1342: LIST
1343: ST_TO_ADDR
// sol1 = CreateHuman ;
1344: LD_ADDR_EXP 2
1348: PUSH
1349: CALL_OW 44
1353: ST_TO_ADDR
// PlaceUnitArea ( sol1 , rus2 , false ) ;
1354: LD_EXP 2
1358: PPUSH
1359: LD_INT 7
1361: PPUSH
1362: LD_INT 0
1364: PPUSH
1365: CALL_OW 49
// end ;
1369: END
// every 0 0$01 do
1370: GO 1372
1372: DISABLE
// begin disable ;
1373: DISABLE
// uc_side = 1 ;
1374: LD_ADDR_OWVAR 20
1378: PUSH
1379: LD_INT 1
1381: ST_TO_ADDR
// hc_class = 2 ;
1382: LD_ADDR_OWVAR 28
1386: PUSH
1387: LD_INT 2
1389: ST_TO_ADDR
// uc_nation = 1 ;
1390: LD_ADDR_OWVAR 21
1394: PUSH
1395: LD_INT 1
1397: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
1398: LD_ADDR_OWVAR 29
1402: PUSH
1403: LD_INT 10
1405: PUSH
1406: LD_INT 10
1408: PUSH
1409: EMPTY
1410: LIST
1411: LIST
1412: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 3 , 5 ) , Rand ( 1 , 3 ) , Rand ( 1 , 4 ) ] ;
1413: LD_ADDR_OWVAR 31
1417: PUSH
1418: LD_INT 1
1420: PPUSH
1421: LD_INT 3
1423: PPUSH
1424: CALL_OW 12
1428: PUSH
1429: LD_INT 3
1431: PPUSH
1432: LD_INT 5
1434: PPUSH
1435: CALL_OW 12
1439: PUSH
1440: LD_INT 1
1442: PPUSH
1443: LD_INT 3
1445: PPUSH
1446: CALL_OW 12
1450: PUSH
1451: LD_INT 1
1453: PPUSH
1454: LD_INT 4
1456: PPUSH
1457: CALL_OW 12
1461: PUSH
1462: EMPTY
1463: LIST
1464: LIST
1465: LIST
1466: LIST
1467: ST_TO_ADDR
// engam = CreateHuman ;
1468: LD_ADDR_EXP 6
1472: PUSH
1473: CALL_OW 44
1477: ST_TO_ADDR
// PlaceUnitArea ( engam , am , false ) ;
1478: LD_EXP 6
1482: PPUSH
1483: LD_INT 2
1485: PPUSH
1486: LD_INT 0
1488: PPUSH
1489: CALL_OW 49
// ComMoveXY ( engam , 51 , 45 ) ;
1493: LD_EXP 6
1497: PPUSH
1498: LD_INT 51
1500: PPUSH
1501: LD_INT 45
1503: PPUSH
1504: CALL_OW 111
// wait ( 0 0$04 ) ;
1508: LD_INT 140
1510: PPUSH
1511: CALL_OW 67
// ComHold ( engam ) ;
1515: LD_EXP 6
1519: PPUSH
1520: CALL_OW 140
// end ;
1524: END
// every 2 2$0 marked 01 do
1525: GO 1527
1527: DISABLE
// begin enable ;
1528: ENABLE
// for i = 1 to 6 do
1529: LD_ADDR_LOC 4
1533: PUSH
1534: DOUBLE
1535: LD_INT 1
1537: DEC
1538: ST_TO_ADDR
1539: LD_INT 6
1541: PUSH
1542: FOR_TO
1543: IFFALSE 1551
// atak ;
1545: CALL 944 0 0
1549: GO 1542
1551: POP
1552: POP
// end ;
1553: END
// every 3 3$0 trigger atakON do var i , un ;
1554: LD_EXP 9
1558: IFFALSE 1679
1560: GO 1562
1562: DISABLE
1563: LD_INT 0
1565: PPUSH
1566: PPUSH
// begin enable ;
1567: ENABLE
// tab := [ ] ;
1568: LD_ADDR_EXP 15
1572: PUSH
1573: EMPTY
1574: ST_TO_ADDR
// uc_side = 8 ;
1575: LD_ADDR_OWVAR 20
1579: PUSH
1580: LD_INT 8
1582: ST_TO_ADDR
// hc_class = class_apeman ;
1583: LD_ADDR_OWVAR 28
1587: PUSH
1588: LD_INT 12
1590: ST_TO_ADDR
// hc_attr = [ 13 , sila ] ;
1591: LD_ADDR_OWVAR 29
1595: PUSH
1596: LD_INT 13
1598: PUSH
1599: LD_EXP 18
1603: PUSH
1604: EMPTY
1605: LIST
1606: LIST
1607: ST_TO_ADDR
// uc_nation = 0 ;
1608: LD_ADDR_OWVAR 21
1612: PUSH
1613: LD_INT 0
1615: ST_TO_ADDR
// for i = 1 to atakujacy do
1616: LD_ADDR_VAR 0 1
1620: PUSH
1621: DOUBLE
1622: LD_INT 1
1624: DEC
1625: ST_TO_ADDR
1626: LD_EXP 17
1630: PUSH
1631: FOR_TO
1632: IFFALSE 1677
// begin un = CreateHuman ;
1634: LD_ADDR_VAR 0 2
1638: PUSH
1639: CALL_OW 44
1643: ST_TO_ADDR
// PlaceUnitArea ( un , apes , false ) ;
1644: LD_VAR 0 2
1648: PPUSH
1649: LD_INT 5
1651: PPUSH
1652: LD_INT 0
1654: PPUSH
1655: CALL_OW 49
// tab := tab ^ un ;
1659: LD_ADDR_EXP 15
1663: PUSH
1664: LD_EXP 15
1668: PUSH
1669: LD_VAR 0 2
1673: ADD
1674: ST_TO_ADDR
// end ;
1675: GO 1631
1677: POP
1678: POP
// end ;
1679: PPOPN 2
1681: END
// every 0 0$03 trigger tab do var i , un ;
1682: LD_EXP 15
1686: IFFALSE 1764
1688: GO 1690
1690: DISABLE
1691: LD_INT 0
1693: PPUSH
1694: PPUSH
// begin enable ;
1695: ENABLE
// for i = 1 to tab do
1696: LD_ADDR_VAR 0 1
1700: PUSH
1701: DOUBLE
1702: LD_INT 1
1704: DEC
1705: ST_TO_ADDR
1706: LD_EXP 15
1710: PUSH
1711: FOR_TO
1712: IFFALSE 1762
// ComAttackUnit ( tab [ i ] , NearestUnitToUnit ( FilterAllUnits ( [ f_side , 3 ] ) , tab [ i ] ) ) ;
1714: LD_EXP 15
1718: PUSH
1719: LD_VAR 0 1
1723: ARRAY
1724: PPUSH
1725: LD_INT 22
1727: PUSH
1728: LD_INT 3
1730: PUSH
1731: EMPTY
1732: LIST
1733: LIST
1734: PPUSH
1735: CALL_OW 69
1739: PPUSH
1740: LD_EXP 15
1744: PUSH
1745: LD_VAR 0 1
1749: ARRAY
1750: PPUSH
1751: CALL_OW 74
1755: PPUSH
1756: CALL_OW 115
1760: GO 1711
1762: POP
1763: POP
// end ;
1764: PPOPN 2
1766: END
// every 0 0$02 trigger FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] ] ) = 0 do
1767: LD_INT 22
1769: PUSH
1770: LD_INT 1
1772: PUSH
1773: EMPTY
1774: LIST
1775: LIST
1776: PUSH
1777: LD_INT 21
1779: PUSH
1780: LD_INT 1
1782: PUSH
1783: EMPTY
1784: LIST
1785: LIST
1786: PUSH
1787: EMPTY
1788: LIST
1789: LIST
1790: PPUSH
1791: CALL_OW 69
1795: PUSH
1796: LD_INT 0
1798: EQUAL
1799: IFFALSE 1815
1801: GO 1803
1803: DISABLE
// begin disable ( 01 ) ;
1804: LD_INT 1
1806: DISABLE_MARKED
// atakON = true ;
1807: LD_ADDR_EXP 9
1811: PUSH
1812: LD_INT 1
1814: ST_TO_ADDR
// end ;
1815: END
// every 3 3$0 trigger atakON do
1816: LD_EXP 9
1820: IFFALSE 1854
1822: GO 1824
1824: DISABLE
// begin enable ;
1825: ENABLE
// atakujacy = atakujacy + 1 ;
1826: LD_ADDR_EXP 17
1830: PUSH
1831: LD_EXP 17
1835: PUSH
1836: LD_INT 1
1838: PLUS
1839: ST_TO_ADDR
// sila = sila + 1 ;
1840: LD_ADDR_EXP 18
1844: PUSH
1845: LD_EXP 18
1849: PUSH
1850: LD_INT 1
1852: PLUS
1853: ST_TO_ADDR
// end ;
1854: END
// every 0 0$01 do
1855: GO 1857
1857: DISABLE
// begin enable ;
1858: ENABLE
// if sila = 19 then
1859: LD_EXP 18
1863: PUSH
1864: LD_INT 19
1866: EQUAL
1867: IFFALSE 1877
// begin sila = 18 ;
1869: LD_ADDR_EXP 18
1873: PUSH
1874: LD_INT 18
1876: ST_TO_ADDR
// end ; end ; end_of_file
1877: END
// every 0 0$01 trigger IsDead ( pak ) marked 01 do
1878: LD_EXP 1
1882: PPUSH
1883: CALL_OW 301
1887: IFFALSE 1899
1889: GO 1891
1891: DISABLE
// begin YouLost ( pakryszkin ) ;
1892: LD_STRING pakryszkin
1894: PPUSH
1895: CALL_OW 104
// end ;
1899: END
// every 0 0$01 trigger IsDead ( sol1 ) or IsDead ( sol2 ) marked 01 do
1900: LD_EXP 2
1904: PPUSH
1905: CALL_OW 301
1909: PUSH
1910: LD_EXP 3
1914: PPUSH
1915: CALL_OW 301
1919: OR
1920: IFFALSE 1932
1922: GO 1924
1924: DISABLE
// begin YouLost ( umarli ) ;
1925: LD_STRING umarli
1927: PPUSH
1928: CALL_OW 104
// end ;
1932: END
// every 0 0$01 trigger FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) = 0 marked 02 do
1933: LD_INT 22
1935: PUSH
1936: LD_INT 3
1938: PUSH
1939: EMPTY
1940: LIST
1941: LIST
1942: PUSH
1943: LD_INT 21
1945: PUSH
1946: LD_INT 1
1948: PUSH
1949: EMPTY
1950: LIST
1951: LIST
1952: PUSH
1953: EMPTY
1954: LIST
1955: LIST
1956: PPUSH
1957: CALL_OW 69
1961: PUSH
1962: LD_INT 0
1964: EQUAL
1965: IFFALSE 2080
1967: GO 1969
1969: DISABLE
// begin if czas1 = true then
1970: LD_EXP 10
1974: PUSH
1975: LD_INT 1
1977: EQUAL
1978: IFFALSE 1992
// AddMedal ( czas1 , 1 ) else
1980: LD_STRING czas1
1982: PPUSH
1983: LD_INT 1
1985: PPUSH
1986: CALL_OW 101
1990: GO 2003
// AddMedal ( czas1 , - 1 ) ;
1992: LD_STRING czas1
1994: PPUSH
1995: LD_INT 1
1997: NEG
1998: PPUSH
1999: CALL_OW 101
// if czas2 = true then
2003: LD_EXP 11
2007: PUSH
2008: LD_INT 1
2010: EQUAL
2011: IFFALSE 2025
// AddMedal ( czas2 , 1 ) else
2013: LD_STRING czas2
2015: PPUSH
2016: LD_INT 1
2018: PPUSH
2019: CALL_OW 101
2023: GO 2036
// AddMedal ( czas2 , - 1 ) ;
2025: LD_STRING czas2
2027: PPUSH
2028: LD_INT 1
2030: NEG
2031: PPUSH
2032: CALL_OW 101
// if czas3 = true then
2036: LD_EXP 12
2040: PUSH
2041: LD_INT 1
2043: EQUAL
2044: IFFALSE 2058
// AddMedal ( czas3 , 1 ) else
2046: LD_STRING czas3
2048: PPUSH
2049: LD_INT 1
2051: PPUSH
2052: CALL_OW 101
2056: GO 2069
// AddMedal ( czas3 , - 1 ) ;
2058: LD_STRING czas3
2060: PPUSH
2061: LD_INT 1
2063: NEG
2064: PPUSH
2065: CALL_OW 101
// GiveMedals ( Medale ) ;
2069: LD_STRING Medale
2071: PPUSH
2072: CALL_OW 102
// YouWin ;
2076: CALL_OW 103
// end ;
2080: END
// every 5 5$0 do
2081: GO 2083
2083: DISABLE
// begin enable ;
2084: ENABLE
// uc_side = 0 ;
2085: LD_ADDR_OWVAR 20
2089: PUSH
2090: LD_INT 0
2092: ST_TO_ADDR
// hc_class = class_apeman ;
2093: LD_ADDR_OWVAR 28
2097: PUSH
2098: LD_INT 12
2100: ST_TO_ADDR
// hc_attr = [ 13 , 13 ] ;
2101: LD_ADDR_OWVAR 29
2105: PUSH
2106: LD_INT 13
2108: PUSH
2109: LD_INT 13
2111: PUSH
2112: EMPTY
2113: LIST
2114: LIST
2115: ST_TO_ADDR
// uc_nation = 0 ;
2116: LD_ADDR_OWVAR 21
2120: PUSH
2121: LD_INT 0
2123: ST_TO_ADDR
// hc_agressivity = 100 ;
2124: LD_ADDR_OWVAR 35
2128: PUSH
2129: LD_INT 100
2131: ST_TO_ADDR
// ape0 = CreateHuman ;
2132: LD_ADDR_EXP 13
2136: PUSH
2137: CALL_OW 44
2141: ST_TO_ADDR
// PlaceUnitAnywhere ( ape0 , true ) ;
2142: LD_EXP 13
2146: PPUSH
2147: LD_INT 1
2149: PPUSH
2150: CALL_OW 51
// end ;
2154: END
// every 0 0$01 marked 03 do
2155: GO 2157
2157: DISABLE
// begin wait ( 10 10$0 ) ;
2158: LD_INT 21000
2160: PPUSH
2161: CALL_OW 67
// enable ;
2165: ENABLE
// hc_attr = [ 10 , 10 ] ;
2166: LD_ADDR_OWVAR 29
2170: PUSH
2171: LD_INT 10
2173: PUSH
2174: LD_INT 10
2176: PUSH
2177: EMPTY
2178: LIST
2179: LIST
2180: ST_TO_ADDR
// uc_side = 3 ;
2181: LD_ADDR_OWVAR 20
2185: PUSH
2186: LD_INT 3
2188: ST_TO_ADDR
// uc_nation = 2 ;
2189: LD_ADDR_OWVAR 21
2193: PUSH
2194: LD_INT 2
2196: ST_TO_ADDR
// hc_class = 1 ;
2197: LD_ADDR_OWVAR 28
2201: PUSH
2202: LD_INT 1
2204: ST_TO_ADDR
// hc_skills = [ Rand ( 3 , 5 ) , Rand ( 1 , 3 ) , Rand ( 1 , 3 ) , 0 ] ;
2205: LD_ADDR_OWVAR 31
2209: PUSH
2210: LD_INT 3
2212: PPUSH
2213: LD_INT 5
2215: PPUSH
2216: CALL_OW 12
2220: PUSH
2221: LD_INT 1
2223: PPUSH
2224: LD_INT 3
2226: PPUSH
2227: CALL_OW 12
2231: PUSH
2232: LD_INT 1
2234: PPUSH
2235: LD_INT 3
2237: PPUSH
2238: CALL_OW 12
2242: PUSH
2243: LD_INT 0
2245: PUSH
2246: EMPTY
2247: LIST
2248: LIST
2249: LIST
2250: LIST
2251: ST_TO_ADDR
// hc_sex = Rand ( 1 , 2 ) ;
2252: LD_ADDR_OWVAR 27
2256: PUSH
2257: LD_INT 1
2259: PPUSH
2260: LD_INT 2
2262: PPUSH
2263: CALL_OW 12
2267: ST_TO_ADDR
// arsol = CreateHuman ;
2268: LD_ADDR_EXP 7
2272: PUSH
2273: CALL_OW 44
2277: ST_TO_ADDR
// PlaceUnitArea ( arsol , rus2 , false ) ;
2278: LD_EXP 7
2282: PPUSH
2283: LD_INT 7
2285: PPUSH
2286: LD_INT 0
2288: PPUSH
2289: CALL_OW 49
// Say ( arsol , a5 ) ;
2293: LD_EXP 7
2297: PPUSH
2298: LD_STRING a5
2300: PPUSH
2301: CALL_OW 88
// end ;
2305: END
// on Contact ( side1 , side2 ) do begin if side1 = 1 and side2 = 3 then
2306: LD_VAR 0 1
2310: PUSH
2311: LD_INT 1
2313: EQUAL
2314: PUSH
2315: LD_VAR 0 2
2319: PUSH
2320: LD_INT 3
2322: EQUAL
2323: AND
2324: IFFALSE 2445
// begin if IsLive ( engam ) then
2326: LD_EXP 6
2330: PPUSH
2331: CALL_OW 300
2335: IFFALSE 2445
// begin disable ;
2337: DISABLE
// ComMoveXY ( engam , 78 , 40 ) ;
2338: LD_EXP 6
2342: PPUSH
2343: LD_INT 78
2345: PPUSH
2346: LD_INT 40
2348: PPUSH
2349: CALL_OW 111
// wait ( 0 0$15 ) ;
2353: LD_INT 525
2355: PPUSH
2356: CALL_OW 67
// DialogueOn ;
2360: CALL_OW 6
// Say ( engam , j1 ) ;
2364: LD_EXP 6
2368: PPUSH
2369: LD_STRING j1
2371: PPUSH
2372: CALL_OW 88
// Query ( q1 ) ;
2376: LD_STRING q1
2378: PPUSH
2379: CALL_OW 97
// case Query ( q1 ) of 1 :
2383: LD_STRING q1
2385: PPUSH
2386: CALL_OW 97
2390: PUSH
2391: LD_INT 1
2393: DOUBLE
2394: EQUAL
2395: IFTRUE 2399
2397: GO 2414
2399: POP
// begin SetSide ( engam , 3 ) ;
2400: LD_EXP 6
2404: PPUSH
2405: LD_INT 3
2407: PPUSH
2408: CALL_OW 235
// end ; 2 :
2412: GO 2441
2414: LD_INT 2
2416: DOUBLE
2417: EQUAL
2418: IFTRUE 2422
2420: GO 2440
2422: POP
// begin ComMoveXY ( engam , 54 , 42 ) ;
2423: LD_EXP 6
2427: PPUSH
2428: LD_INT 54
2430: PPUSH
2431: LD_INT 42
2433: PPUSH
2434: CALL_OW 111
// end ; end ;
2438: GO 2441
2440: POP
// DialogueOff ;
2441: CALL_OW 7
// end ; end ; end ;
2445: PPOPN 2
2447: END
